package com.yanqu.road.entity.systemgroup.newmonopolymarket.resgrab;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.DataStatus;
import com.yanqu.road.entity.FieldTypeAnnotation;

import java.util.ArrayList;
import java.util.List;

@FieldTypeAnnotation(tableName = "t_c_new_monopoly_market_res_grab_point")
public class NewMonopolyMarketResGrabPointData extends DataObject {

    @FieldTypeAnnotation(update = true, desc = "每周", select = true)
    private int weekId;
    @FieldTypeAnnotation(update = true, desc = "本周系统分组id",select = true)
    private long groupId;
    @FieldTypeAnnotation(update = true, desc = "资源分组id（大、中、小）")
    private int resGroupId;
    @FieldTypeAnnotation(update = true, desc = "位置索引")
    private int posIndex;
    @FieldTypeAnnotation(desc = "资源点类型 12王帐 13王宫")
    private byte type;
    @FieldTypeAnnotation(desc = "入座玩家id")
    private long userId;
    @FieldTypeAnnotation(desc = "资源入座前的剩余时间 s  ")
    private int remainTime;
    @FieldTypeAnnotation(desc = "上次产出奖励的时间 s  一开始等于入座时间")
    private int receiveLastTime;
    @FieldTypeAnnotation(desc = "上次领取据点奖励的时间 s 点击领取的时间")
    private int produceRewardLastTime;
    @FieldTypeAnnotation(desc = "开采时间 s")
    private int seatTime;
    @FieldTypeAnnotation(desc = "到期时间 s")
    private int endTime;
    @FieldTypeAnnotation(desc = "据点总血量 ")
    private long totalBlood;
    @FieldTypeAnnotation(desc = "当前血量")
    private long blood;
    @FieldTypeAnnotation(desc = "位置上的门客、美女信息")
    private List<NewMonopolyMarketBaseBattleObjectInfo> objectInfoList = new ArrayList<>();
    @FieldTypeAnnotation(desc = "上次位置变动时间(s)")
    private int changeTime;
    @FieldTypeAnnotation(desc = "重置时间(每日结算)")
    private int resetTime;
    @FieldTypeAnnotation(desc = "等待派遣的过期时间")
    private int waitTimeout;
    @FieldTypeAnnotation(desc = "区服id")
    private long serverId;

    public int getWeekId() {
        return weekId;
    }

    public void setWeekId(int weekId) {
        if(this.weekId != weekId) {
            this.weekId = weekId;
            setUpdateOption();
        }
    }

    public long getGroupId() {
        return groupId;
    }
    public void setGroupId(long groupId) {
        if (this.groupId != groupId) {
            this.groupId = groupId;
            setOp(DataStatus.Update);
        }
    }

    public byte getType() {
        return type;
    }
    public void setType(byte type) {
        if (this.type != type ) {
            this.type = type;
            setOp(DataStatus.Update);
        }
    }

    public int getResGroupId() {
        return resGroupId;
    }

    public void setResGroupId(int resGroupId) {
        if(this.resGroupId != resGroupId) {
            this.resGroupId = resGroupId;
            setUpdateOption();
        }
    }

    public int getPosIndex() {
        return posIndex;
    }
    public void setPosIndex(int posIndex) {
        if (this.posIndex != posIndex) {
            this.posIndex = posIndex;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public int getRemainTime() {
        return remainTime;
    }
    public void setRemainTime(int remainTime) {
        if (this.remainTime != remainTime) {
            this.remainTime = remainTime;
            setOp(DataStatus.Update);
        }
    }

    public int getReceiveLastTime() {
        return receiveLastTime;
    }
    public void setReceiveLastTime(int receiveLastTime) {
        if (this.receiveLastTime != receiveLastTime) {
            this.receiveLastTime = receiveLastTime;
            setOp(DataStatus.Update);
        }
    }

    public int getSeatTime() {
        return seatTime;
    }
    public void setSeatTime(int seatTime) {
        if (this.seatTime != seatTime) {
            this.seatTime = seatTime;
            setOp(DataStatus.Update);
        }
    }

    public int getEndTime() {
        return endTime;
    }
    public void setEndTime(int endTime) {
        if (this.endTime != endTime) {
            this.endTime = endTime;
            setOp(DataStatus.Update);
        }
    }

    public List<NewMonopolyMarketBaseBattleObjectInfo> getObjectInfoList() {
        return objectInfoList;
    }
    public void setObjectInfoList(List<NewMonopolyMarketBaseBattleObjectInfo> objectInfoList) {
        if (null == objectInfoList){
            return;
        }
        if (this.objectInfoList == null || !this.objectInfoList.equals(objectInfoList)) {
            this.objectInfoList = objectInfoList;
            setOp(DataStatus.Update);
        }
    }

    public long getTotalBlood() {
        return totalBlood;
    }

    public void setTotalBlood(long totalBlood) {
        if(this.totalBlood != totalBlood) {
            this.totalBlood = totalBlood;
            setUpdateOption();
        }
    }

    public long getBlood() {
        return blood;
    }

    public void setBlood(long blood) {
        if(this.blood != blood) {
            this.blood = blood;
            setUpdateOption();
        }
    }

    public int getChangeTime() {
        return changeTime;
    }
    public void setChangeTime(int changeTime) {
        if (this.changeTime != changeTime) {
            this.changeTime = changeTime;
            setOp(DataStatus.Update);
        }
    }

    public int getProduceRewardLastTime() {
        return produceRewardLastTime;
    }
    public void setProduceRewardLastTime(int produceRewardLastTime) {
        if (this.produceRewardLastTime != produceRewardLastTime) {
            this.produceRewardLastTime = produceRewardLastTime;
            setOp(DataStatus.Update);
        }
    }

    public int getResetTime() {
        return resetTime;
    }

    public void setResetTime(int resetTime) {
        if(this.resetTime != resetTime) {
            this.resetTime = resetTime;
            setUpdateOption();
        }
    }

    public int getWaitTimeout() {
        return waitTimeout;
    }

    public void setWaitTimeout(int waitTimeout) {
        if(this.waitTimeout != waitTimeout) {
            this.waitTimeout = waitTimeout;
            setUpdateOption();
        }
    }

    public long getServerId() {
        return serverId;
    }

    public void setServerId(long serverId) {
        if(this.serverId != serverId) {
            this.serverId = serverId;
            setUpdateOption();
        }
    }
}
